package chapter07

/**
  * create by undeRdoG on  2021-06-05  22:17
  * 凡心所向，素履以往，生如逆旅，一苇以航。
  */
object Test12_DerivedCollection {

  def main(args: Array[String]): Unit = {

    val list1 = List(1,2,3,4,5,6,7,8)

    val list2 = List(5,6,7,8,9,10)

    //（1）获取集合的头
    list1.head


    //（2）获取集合的尾（不是头的就是尾）

    println(list1.tail)

    //（3）集合最后一个数据

    println(list2.last)

    //（4）集合初始数据（不包含最后一个）
    println(list2.init)

    //（5）反转
    println(list1.reverse)

    //（6）取前（后）n 个元素
    println(list1.take(3))
    // 取后4个
    println(list1.takeRight(4))

    //（7）去掉前（后）n 个元素
    list1.drop(3)
    list1.drop(4)

    //（8）并集
    val union = list1 union list2
    println(union)

    //（9）交集
    val intersection = list1.intersect(list2)
    println(intersection)

    //（10）差集
    val diff1 = list1.diff(list2)
    val diff2 = list2.diff(list1)
    println(diff1)
    println(diff2)


    //（11）拉链
    //List((1,5), (2,6), (3,7), (4,8), (5,9), (6,10))
    val zip  = list1.zip(list2)
    println(zip)


    //（12）滑窗   默认步长为 1
    val iterator: Iterator[List[Int]] = list1.sliding(3)
    for (ele <- iterator){
      println(ele)
    }

    println("=============================================================================================================")
    val iter = list1.sliding(2,3)
    for (ele <- iter) println(ele)
  }
}
